Для ПЛИС фирмы Xilinx дешевый USB-программатор найти не так просто. В данной статье я предлагаю вашему вниманию программатор основанный на проекте FPGALink, созданным британцем Крисом МакКлелландом. Он разработал прошивку под контроллеры Cypress FX2LP и Atmel AVR8 с поддержкой USB а также библиотеку для работы с этой прошивкой и утилиты командной строки на её основе. Я накидал простенькую платку программатора c чипом AT90USB162. Особенностью этой AVR-ки является то, что её можно прошить без внешнего программатора - с помощью USB DFU Bootloader-а (Device Firmware Upgrade).
Данный программатор теоретически поддерживает любые модели Xilinx FPGA, поскольку он просто выполняет .xsvf-файлы по стандартному 4-х проводному интерфейсу JTAG. Файлы .xsvf можно генерировать с помощью утилиты Impact, входящей в состав IDE Xilinx ISE. Скорость прошивки вполне удовлетворительна - для примера чип xc6slx9 прошивается за несколько секунд.
Скачать: Архив с платой, прошивкой и управляющим софтом
Схема:
Плата однослойная с 4мя перемычками:
Распиновка разьема:

Как-то так выглядит в запаянном виде:
Скачать: Архив с платой, прошивкой и управляющим софтом
Прошивка программатора
Я буду прошивать в linux. Подключаем устройство. Чистая, не прошитая AVR-ка по-умолчанию должна перейти в режим dfu бутлоадера автоматически, и в lsusb должно появится устройство:
1 | Bus 001 Device 005: ID 03eb:2ffa Atmel Corp. at90usb162 DFU bootloader |
Если ваша at90usb162 уже была прошивка, то нужно перейти в режим бутлоадера принудительно. Для этого:
- Зажмите кнопку RESET
- зажмите кнопку BOOT
- отпустите RESET
- отпустите BOOT
- Проверьте lsusb, в нем должна быть вышеприведенная строка (с 03eb:2ffa)
Для прошивки нам понадобится утилита dfu-programmer. В Arch Linux эта утилита есть в AUR, в пакете dfu-programmer. В убунте этот пакет вроде есть в основном репозитарии.
Переходим в каталог firmware скачанного и распакованного архива и выполняем в нем:
1 | sudo ./program.sh |
Сразу после прошивки в lsusb должно появляется устройство:
1 | Bus 001 Device 007: ID 1d50:602b OpenMoko, Inc. FPGALink |
Прошивка и софт в архиве имеют версию 20140330. Они были собраны по подобию этой инструкции.
Управляющий софт
Для работы с программатором нужны программы flcli и gordon. Установить их вы можете двумя способами: или взять уже скомпилированные мной, или скомпилировать самому. Второй способ мы рассмотрим в отдельной статье, а тут я предложу первый способ. В linux необходимо перейти в каталог soft/linux/ и выполнить в нем:
1 | sudo ./install.sh |
В Windows необходимые exe-шники и dll-ки лежат в каталоге soft/windows/. Для работы вам понадобится скопировать их все в одно место и прописать к ним путь в переменной среды Path. Также в Windows придется установить драйвер libUSB для конкретно этого устройства. Как это сделать я рассказывал на примере программатора versaloon тут в разделе "Установка libusb в Windows".
После этого можно вызывать утилиты flcli и gordon из любого места. Как пользоваться программаторам я расскажу в статье про демоплату Spartan-6 lx9.
Cсылки про FPGALink: Сайт проекта, ггуглогруппа, Репозитарий на GitHub.
Блог о встраиваемых системах




Оставить комментарий